package arithmetic;

import org.junit.jupiter.api.Test;

/**
 * 机器人能否回到原地
 *
 * @author gaojie
 * @date 2022-03-24
 */
public class JudgeCircle {

    @Test
    void test() {
        assert fun("LR");
        assert fun("UD");
        assert !fun("LL");
    }

    /**
     * 1.定义 x,y 表示初始坐标
     * 2.字符串转换成字符数组，然后循环指令
     * 3.1. L 左移 x--
     * 3.2. R 右移 x++
     * 3.3. U 上移 y++
     * 3.4. D 下移 y--
     * 4.判断最终位置，是否还在原点
     */
    boolean fun(String moves) {
        int x = 0, y = 0;
        for (char c : moves.toCharArray()) {
            switch (c) {
                case 'L':
                    x--;
                    break;
                case 'R':
                    x++;
                    break;
                case 'U':
                    y++;
                    break;
                case 'D':
                    y--;
                    break;
                default:
                    break;
            }
        }
        return x == 0 && y == 0;
    }

}
